package com.isoft.airportsystem.util;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;

import java.beans.PropertyDescriptor;
import java.util.HashMap;
import java.util.Map;

public class BeanUtil {
    /**
     * 将对象转换为 Map（忽略值为 null 的属性）
     */
    public static Map<String, Object> beanToMap(Object bean) {
        if (bean == null) {
            return new HashMap<>();
        }
        Map<String, Object> map = new HashMap<>();
        BeanWrapper beanWrapper = new BeanWrapperImpl(bean);
        for (PropertyDescriptor pd : beanWrapper.getPropertyDescriptors()) {
            String propertyName = pd.getName();
            if (!"class".equals(propertyName)) { // 跳过 class 属性
                Object value = beanWrapper.getPropertyValue(propertyName);
                if (value != null) { // 忽略 null 值
                    map.put(propertyName, value);
                }
            }
        }
        return map;
    }

    // 若需要其他 Bean 操作方法（如 copyProperties），可继续添加
    public static void copyProperties(Object source, Object target) {
        BeanUtils.copyProperties(source, target);
    }
}
